package com.example.alipay.anysign.demo;

import cn.org.bjca.anysign.components.bean.message.ExternalAnyWriteInfo;
import cn.org.bjca.anysign.components.bean.message.MessageBodyReference;
import cn.org.bjca.anysign.datasign.evidence.model.DocumentType;
import cn.org.bjca.anysign.terminal.model.*;
import cn.org.bjca.anysign.terminal.model.cacertmodel.*;
import cn.org.bjca.common.model.DocumentExtType;
import cn.org.bjca.common.model.FontStyle;
import cn.org.bjca.common.model.GeneratePDFInfo;
import cn.org.bjca.seal.esspdf.client.message.ChannelMessage;
import cn.org.bjca.seal.esspdf.client.tools.AnySignClientTool;
import cn.org.bjca.seal.esspdf.client.utils.ClientUtil;
import junit.framework.TestCase;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.io.FileUtils;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

import java.io.File;
import java.io.IOException;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.List;

public class AnyWritePDFSignFacadeTest_anyWrite {

	private String resourcesPath;

	String testEncDataPath;

	String testHtmlFilePath;

	String testPdfFilePath;

	String testXMLFilePath;

	String testImageFilePath;

	String outPdfsFilePath;

	String testSignedPdfFilePath;

	AnySignClientTool anySignClientTool = null;
	@Before
	public void init() throws Exception {
		String ip = "127.0.0.1";
		int port = 8002;
		anySignClientTool = new AnySignClientTool(ip, port);
		resourcesPath = URLDecoder.decode(this.getClass().getClassLoader().getResource("").getPath(), "UTF-8");
		testEncDataPath = resourcesPath + "encdata" + File.separator;
		testHtmlFilePath = resourcesPath + "html" + File.separator + "test.html";
		testPdfFilePath = resourcesPath + "pdf" + File.separator + "test.pdf";
		testXMLFilePath = resourcesPath + "xml" + File.separator + "test.xml";
		testImageFilePath = resourcesPath + "image" + File.separator + "test.gif";
		testSignedPdfFilePath = resourcesPath + "pdf" + File.separator + "anywriteSignedPDF.pdf";
		outPdfsFilePath = resourcesPath + "out" + File.separator;
	}

	/***
	 * 门面接口纯外传，坐标签名
	 * @throws Exception
	 */
	@Test
	public void testAnyWritePDFSignFacade_anyWrite() throws Exception{

		//加密包门面接口
		List<ExternalAnyWriteInfo> externalAnyWriteInfoList = new ArrayList<ExternalAnyWriteInfo>();
		ExternalAnyWriteInfo  externalAnyWriteInfo = new ExternalAnyWriteInfo();
		//渠道号
		externalAnyWriteInfo.setChannel("999999");//999999为测试渠道号，正式环境请使用正式渠道号
		//外传原文
		List<GeneratePDFInfo>  generatePDFInfoList = getGeneratePDFInfoList(); //获取原文相关的信息
		externalAnyWriteInfo.setGeneratePDFInfoList(generatePDFInfoList);

		//手写签名信息 cid 2开头
		List<USignInfo> uSignInfoList = getUSignInfoListBykWRule();//设置签名人和签名图片，关键字方式
		//List<USignInfo> uSignInfoList = getUSignInfoListByxyzRuleInfo();//设置签名人和签名图片，坐标方式
		externalAnyWriteInfo.setUSignInfoList(uSignInfoList);

		//添加附件 "Cid="50~59,500-599 附件区",Cid=70~79、700~799域用于存放自动采集的证据
		List<AttachmentInfo> attachmentInfoList = getAttachmentInfoList();
		externalAnyWriteInfo.setAttachmentInfoList(attachmentInfoList);

		//添加批注 cid 3开头
		List<USignInfo> annotationList = getAnnotationList();
		externalAnyWriteInfo.setAnnotationList(annotationList);

		//适用于手写签名并签章，不常用
//		List<CachetInfo> cachetInfoList = getCachetInfoList();
//		externalAnyWriteInfo.setCachetInfoList(cachetInfoList);

		externalAnyWriteInfoList.add(externalAnyWriteInfo);
		ChannelMessage channelMessage = anySignClientTool.anyWritePDFSignFacade(externalAnyWriteInfoList);
		System.out.println("状态码：" + channelMessage.getStatusCode());
		System.out.println("状态信息：" + channelMessage.getStatusInfo());
		Assert.assertEquals("200", channelMessage.getStatusCode());
		if ("200".equals(channelMessage.getStatusCode())) {// 成功
			List<MessageBodyReference> messageBodyReferenceList = channelMessage.getMessageBodyReferenceList();
			MessageBodyReference messageBodyReference = null;
			for (int i = 0; i < messageBodyReferenceList.size(); i++) {
				messageBodyReference = messageBodyReferenceList.get(i);
				String name = outPdfsFilePath + "\\testAnyWritePDFSignFacade_" + i + ".pdf";
				System.out.println(name);
				ClientUtil.writeByteArrayToFile(new File(name), messageBodyReference.getFileBty());
			}
		}


	}

	/**
	 * 设置外传原文信息 PDF文件，多文件为例
	 * @return
	 * @throws IOException
	 */
	private List<GeneratePDFInfo> getGeneratePDFInfoList() throws IOException{
		//外穿原文
		List<GeneratePDFInfo> generatePDFInfoList = new ArrayList<GeneratePDFInfo>();
		// 原文信息1
		GeneratePDFInfo generatePDFInfo = new GeneratePDFInfo();
		//原文内容1
		generatePDFInfo.setDocContent(FileUtils.readFileToByteArray(new File(testPdfFilePath)));
		//原文类型1
		generatePDFInfo.setDocumentExtType(DocumentExtType.PDF);
		generatePDFInfoList.add(generatePDFInfo);
		// 原文信息2
		GeneratePDFInfo generatePDFInfo1 = new GeneratePDFInfo();
		//原文内容2
		generatePDFInfo1.setDocContent(FileUtils.readFileToByteArray(new File(testPdfFilePath)));
		//原文类型2
		generatePDFInfo1.setDocumentExtType(DocumentExtType.PDF);
		generatePDFInfoList.add(generatePDFInfo1);
		return generatePDFInfoList;

	}




	/**
	 * 设置签名人和签名图片,签名轨迹，签名规则：关键字签名方式
	 * 多签需要创建多个USignInfo实例
	 * @return
	 * @throws Exception
	 */
	private List<USignInfo> getUSignInfoListBykWRule() throws Exception {
		//手写签名
		List<USignInfo> uSignInfoList = new ArrayList<USignInfo>();
		// 手写签名数据类
		USignInfo uSignInfo = new USignInfo();
		uSignInfo.setCid("21");//cid 2开头,多个签名时，cid进行递增
		uSignInfo.setImageBty(Base64.decodeBase64(imgStr)); // 手写签名图片base64
		uSignInfo.setImageFMT("image/png");// 手写图片格式("image/gif"、"image/jpeg"、"image/png")
		ImageSize imageSize = new ImageSize(); // 手写签名图片尺寸大小
		imageSize.setHeight("41"); // 高度
		imageSize.setWidth("100"); // 宽度
		imageSize.setUnit("dp"); // 单位类型
		uSignInfo.setImageSize(imageSize);
		uSignInfo.setIsTSS("true");//true服务器加盖时间戳，false不加盖时间戳
		uSignInfo.setSignAlg("RSA");//设置签名算法

		PlainData points = new PlainData();//P10Data可不填
		CertOID certOID = new CertOID();
		BioFeature bioFeature = new BioFeature();//证据信息

		//设置图片证据
		List<PhotoArrayInfo> PhotoArray = new ArrayList<PhotoArrayInfo>();
		PhotoArrayInfo photoArrayInfo = new PhotoArrayInfo();
		photoArrayInfo.setFormat("image/png");
		photoArrayInfo.setHash("1234567898765544333232");
		photoArrayInfo.setBioType(1);
		PhotoArray.add(photoArrayInfo);
		bioFeature.setPhotoArray(PhotoArray);

		//设置音频证据
		List<SoundArrayInfo> soundArrayInfos = new ArrayList<SoundArrayInfo>();
		SoundArrayInfo soundArrayInfo = new SoundArrayInfo();
		soundArrayInfo.setFormat("mp3");
		soundArrayInfo.setHash("666666666666666666");
		soundArrayInfo.setBioType(1);
		soundArrayInfos.add(soundArrayInfo);
		bioFeature.setSoundArray(soundArrayInfos);

		//设置视频证据
		List<VideoArrayInfo> videoArrayInfos = new ArrayList<VideoArrayInfo>();
		VideoArrayInfo videoArrayInfo = new VideoArrayInfo();
		videoArrayInfo.setBioType(1);
		videoArrayInfo.setFormat("mp4");
		videoArrayInfo.setHash("777777777777777");
		videoArrayInfos.add(videoArrayInfo);
		bioFeature.setVideoArray(videoArrayInfos);

		//设置其他证据
		List<OtherArrayInfo> otherArrayInfos = new ArrayList<OtherArrayInfo>();
		OtherArrayInfo otherArrayInfo = new OtherArrayInfo();
		otherArrayInfo.setBioType(1);
		otherArrayInfo.setFormat("other");
		otherArrayInfo.setHash("88888888888888");
		otherArrayInfos.add(otherArrayInfo);
		bioFeature.setOtherArray(otherArrayInfos);

		//设置轨迹信息
		Script script = new Script();
		script.setColor("0"); // 颜色值
		script.setCount("160"); // 轨迹点的个数，整数
		// 轨迹数据
		script.setData("eJxNl1uuXiEIRt8diycRBMX5T6yLf3tpk6btOrq5fYDtU2qXVb12k7nEe+lzgqxK32xI6WvV3rSCPza9WB9VF2xstqRYeNWIy7TN4l04J1XmZtqLj8b37LG+iqcrfBNvPub+nYteJTabyvdWNQzcuxHF8c2c7+04+HaxwTliuUwbPs/qrT3WRzGV6vJsdNeS33cM6M5BHwHr1bU9Ntdmcpk1ctC9eteqOwf8xheY9arbrnVyQPwZ371r65crD+7qZoMceK+jzceCHHjU0ePdXeTAWx3xzrkY32t14ghuf6y3kvHP8eJ1Iwfkfsaof7LZIAe/c3xvsyHogNrOjGPbHTphWid2dGtjENth53vDtMQgT65HajNWCf6pvm4po3sJQu1NrvwCSU4nl+6PjVVm68gA+e1wI0YZNqthRrbZ1bQMNGux7rklpAqZeltXBquTqgnj7EnVclKFhFxe+tYYm83HglJOGOU8KeDX58vUnb5oTbxkKexKHNaFeIU4fOcAZrNE3m3x2OglsGHk5rJoJWi/PPeVHLYGLGDrMhFSv+aP/clhUWbGRSxfTqMpcczUJz7KvtvbKBNJZtm/XMFUS5bWxnys8z2C94xtbOYGS+nK9bnPBkOm1h6LiS/I2V+urPWff4OaXybUXLhLm1/mgg4WrD028nvY7afdYIEv3fAlLqMNyhy0+Ry7bjAhXlrI7eWUVi5U9GvzbYOfU7dGzeMx98tOnp26zayHed1mh/Sv5Lh8UjXyah4hPNlXx4xfeVNupxxjWVmkJEM750hJQft1XNnDdBRp1HEsf5AWFDyqmcRTuOkBnAl1KxrIcAfaD55QZkgRRmgV4tu3F5NSek+nx9GRIC6g5V6w47mgkDyJinJh+IHrwW1HUv7CfTQn246ItWS4h1M7aZjUfXDonmVAZrLI4qTGO7mIR3OrtZtz0Z+bqZuw65EyzsTIT56+Jw3fzcYH54aOoRw1ips7cdgYCdFEnNUBXJoQcOdrQgzlUuy2TpSdASa5PNOrzayl61zs2W22oabrLb5xcGCfmfb+CetAz7Rz3RgApxbsxQxyfd16YPxcxzCub8kIWxUYKTi5J53ZkT+h6f6Dag+eILNzpFPbznbZBZqajENG663NjMs9N2lupZ3LOVpG7t+s2F+cmeAcWmPptc0mTuj/CzvFmRBhv3bMMIvMRk+so2FhNSXLuX+yzt+wPUibssa3bW3MH8nwdNnxUplywEw39i9kKsnIF0mOdd2QsQRs3/zvG87+4N8xlJ02JkdQ5vZI0svs5p5NtQ8SJK7/dHarqwQEHP51wLaj7IDMVM0sb3GoKoUM5NszI9uQGgGt7Kp2W02VFyDfzSfb7QBahYDY4nzzdoBq1mL9HpBXB0AyF8xdtRuQ9TSuOaJv+ymvkITUIm6jqrEf+AM7OXw+GamzICR6SssfzArxhKim+mBW6AfpywtzcAVRvncfcMRn3XNz7ICczZEqYSXIWQn0fnvwROk8weS39G9LK++W1AyL2+6yVF5rqTia0uRWiMEH5KVnfd2TkXP82x/95iNyjsev0eXBHEdB1uy+poA5x1fqEDmcgGJlLXMBAY/vkeNoMGJ+D6MfQxTZBPkomldIvAewM3NVsUi2DplE/tUyX7jnJHsAuIA54G1DSc2MDbchVkDRlnm3858JII9hesZ+q/hCnl9A/cHte6cDyj8eCW2j");
		script.setFormat("zip");//Script的格式，当前为zip
		script.setRefHeight(980);//原始签名框的高度，像素为单位
		script.setRefWidth(2163);//原始签名框的宽度，像素为单位
		script.setWidth("180");//笔迹宽度
		bioFeature.setScript(script);
		certOID.setBioFeature(bioFeature);

		//设置签名人身份证
		certOID.setIDNumber("111111111111111111");

		points.setCertOID(certOID);
		uSignInfo.setPoints(points);
		//签名人信息类
		SignerInfo signerInfo = new SignerInfo ();
		signerInfo.setIDNumber("111111111111111111");//签名人身份证号
		signerInfo.setIDType("1");//证件类型:1为身份证，2为军官证，3为护照，4为户口本
		signerInfo.setUName("张三");//签名人
		uSignInfo.setSigner(signerInfo);
		//签名规则信息
		SignRuleInfo  signRule = new SignRuleInfo();
		signRule.setRuleType("0");//0关键字/1坐标/2规则
		//关键字信息
		KWInfo kWRule = new  KWInfo();
		kWRule.setKW("的"); // 签名关键字
		kWRule.setKWOffset("0"); // 偏移量是朝哪个方向偏移,与XOffset和YOffset是互斥的,默认为0
		kWRule.setKWPos("4"); // 关键字的方位1:Center,2:lower,3:right,4:lower-right
		kWRule.setPageno("1"); // 签名页 正数为正序 负数为倒序 0全签
		kWRule.setXOffset("0"); // X轴偏移量 适配关键字和规则
		kWRule.setYOffset("30"); // Y轴偏移量 适配关键字和规则
		signRule.setKWRule(kWRule);
		uSignInfo.setSignRule(signRule);
		TimeTag timeTag = new TimeTag();
		timeTag.setPos("2");
		timeTag.setFormat("yyyy年MM月dd日 hh时mm分");
		timeTag.setFontSize(12);
		timeTag.setFontColor("#000000");
		timeTag.setFontStyles(FontStyle.SIMSUN);
		timeTag.setBold(false);
		uSignInfo.setTimeTag(timeTag);
		uSignInfoList.add(uSignInfo);


		return uSignInfoList;
	}

	/**
	 * 设置签名人和签名图片,签名轨迹，签名规则：坐标签名方式
	 * 多签需要创建多个USignInfo实例
	 * @return
	 * @throws Exception
	 */
	private List<USignInfo> getUSignInfoListByxyzRuleInfo() throws Exception {
		//手写签名
		List<USignInfo> uSignInfoList = new ArrayList<USignInfo>();
		// 手写签名数据类
		USignInfo uSignInfo = new USignInfo();
		uSignInfo.setCid("21");//cid 2开头，多个签名时，cid进行递增
		uSignInfo.setImageBty(Base64.decodeBase64(imgStr)); // 手写签名图片byte[]
		uSignInfo.setImageFMT("image/png");// 手写图片格式("image/gif"、"image/jpeg"、"image/png")
		ImageSize imageSize = new ImageSize(); // 手写签名图片尺寸大小
		imageSize.setHeight("41"); // 高度
		imageSize.setWidth("100"); // 宽度
		imageSize.setUnit("dp"); // 单位类型
		uSignInfo.setImageSize(imageSize);
		uSignInfo.setIsTSS("true");//true服务器加盖时间戳，false不加盖时间戳
		uSignInfo.setSignAlg("RSA");//设置签名算法

		PlainData points = new PlainData();//P10Data可不填
		CertOID certOID = new CertOID();
		BioFeature bioFeature = new BioFeature();
		Script script = new Script(); //轨迹信息
		script.setColor("0"); // 颜色值
		script.setCount("160"); // 轨迹点的个数，整数
		// 轨迹数据
		script.setData("eJxNl1uuXiEIRt8diycRBMX5T6yLf3tpk6btOrq5fYDtU2qXVb12k7nEe+lzgqxK32xI6WvV3rSCPza9WB9VF2xstqRYeNWIy7TN4l04J1XmZtqLj8b37LG+iqcrfBNvPub+nYteJTabyvdWNQzcuxHF8c2c7+04+HaxwTliuUwbPs/qrT3WRzGV6vJsdNeS33cM6M5BHwHr1bU9Ntdmcpk1ctC9eteqOwf8xheY9arbrnVyQPwZ371r65crD+7qZoMceK+jzceCHHjU0ePdXeTAWx3xzrkY32t14ghuf6y3kvHP8eJ1Iwfkfsaof7LZIAe/c3xvsyHogNrOjGPbHTphWid2dGtjENth53vDtMQgT65HajNWCf6pvm4po3sJQu1NrvwCSU4nl+6PjVVm68gA+e1wI0YZNqthRrbZ1bQMNGux7rklpAqZeltXBquTqgnj7EnVclKFhFxe+tYYm83HglJOGOU8KeDX58vUnb5oTbxkKexKHNaFeIU4fOcAZrNE3m3x2OglsGHk5rJoJWi/PPeVHLYGLGDrMhFSv+aP/clhUWbGRSxfTqMpcczUJz7KvtvbKBNJZtm/XMFUS5bWxnys8z2C94xtbOYGS+nK9bnPBkOm1h6LiS/I2V+urPWff4OaXybUXLhLm1/mgg4WrD028nvY7afdYIEv3fAlLqMNyhy0+Ry7bjAhXlrI7eWUVi5U9GvzbYOfU7dGzeMx98tOnp26zayHed1mh/Sv5Lh8UjXyah4hPNlXx4xfeVNupxxjWVmkJEM750hJQft1XNnDdBRp1HEsf5AWFDyqmcRTuOkBnAl1KxrIcAfaD55QZkgRRmgV4tu3F5NSek+nx9GRIC6g5V6w47mgkDyJinJh+IHrwW1HUv7CfTQn246ItWS4h1M7aZjUfXDonmVAZrLI4qTGO7mIR3OrtZtz0Z+bqZuw65EyzsTIT56+Jw3fzcYH54aOoRw1ips7cdgYCdFEnNUBXJoQcOdrQgzlUuy2TpSdASa5PNOrzayl61zs2W22oabrLb5xcGCfmfb+CetAz7Rz3RgApxbsxQxyfd16YPxcxzCub8kIWxUYKTi5J53ZkT+h6f6Dag+eILNzpFPbznbZBZqajENG663NjMs9N2lupZ3LOVpG7t+s2F+cmeAcWmPptc0mTuj/CzvFmRBhv3bMMIvMRk+so2FhNSXLuX+yzt+wPUibssa3bW3MH8nwdNnxUplywEw39i9kKsnIF0mOdd2QsQRs3/zvG87+4N8xlJ02JkdQ5vZI0svs5p5NtQ8SJK7/dHarqwQEHP51wLaj7IDMVM0sb3GoKoUM5NszI9uQGgGt7Kp2W02VFyDfzSfb7QBahYDY4nzzdoBq1mL9HpBXB0AyF8xdtRuQ9TSuOaJv+ymvkITUIm6jqrEf+AM7OXw+GamzICR6SssfzArxhKim+mBW6AfpywtzcAVRvncfcMRn3XNz7ICczZEqYSXIWQn0fnvwROk8weS39G9LK++W1AyL2+6yVF5rqTia0uRWiMEH5KVnfd2TkXP82x/95iNyjsev0eXBHEdB1uy+poA5x1fqEDmcgGJlLXMBAY/vkeNoMGJ+D6MfQxTZBPkomldIvAewM3NVsUi2DplE/tUyX7jnJHsAuIA54G1DSc2MDbchVkDRlnm3858JII9hesZ+q/hCnl9A/cHte6cDyj8eCW2j");
		script.setFormat("zip");//Script的格式，当前为zip
		script.setRefHeight(980);//原始签名框的高度，像素为单位
		script.setRefWidth(2163);//原始签名框的宽度，像素为单位
		script.setWidth("180");//笔迹宽度
		bioFeature.setScript(script);
		certOID.setBioFeature(bioFeature);
		points.setCertOID(certOID);
		uSignInfo.setPoints(points);
		//签名人信息类
		SignerInfo signerInfo = new SignerInfo ();
		signerInfo.setIDNumber("111111111111111111");//签名人身份证号
		signerInfo.setIDType("1");//证件类型:1为身份证，2为军官证，3为护照，4为户口本
		signerInfo.setUName("张三");//签名人
		uSignInfo.setSigner(signerInfo);
		//签名规则信息
		SignRuleInfo  signRule = new SignRuleInfo();
		signRule.setRuleType("1");//0关键字/1坐标/2规则
		//坐标信息
		XYZRuleInfo xyzRuleInfo = new XYZRuleInfo();
		xyzRuleInfo.setPageno("1");//签名页 正数为正序 负数为倒序 0 全文所有页码统一坐标位置批签
		xyzRuleInfo.setLeft("300"); //左
		xyzRuleInfo.setRight("300");//右
		xyzRuleInfo.setBottom("400");//下
		xyzRuleInfo.setTop("300");//上
		xyzRuleInfo.setUnit("dp"); // 坐标单位类型
		signRule.setXYZRule(xyzRuleInfo);
		uSignInfo.setSignRule(signRule);
		uSignInfoList.add(uSignInfo);
		return uSignInfoList;
	}
	/**
	 * 设置附件信息
	 * @return
	 * @throws Exception
	 */
	private List<AttachmentInfo> getAttachmentInfoList() throws Exception{
		List<AttachmentInfo> attachmentInfoList = new ArrayList<AttachmentInfo>();
		AttachmentInfo attachmentInfo = new AttachmentInfo();
		attachmentInfo.setCid("50"); // Cid="50~59,500-599 附件区，多个附件时，cid进行递增
		attachmentInfo.setName("附件名称"); // 名称 可以为空
		//附件内容
		byte[] attachmentInfoByte = FileUtils.readFileToByteArray(new File(testImageFilePath));
		//附件内容的base64
		attachmentInfo.setData(Base64.encodeBase64String(attachmentInfoByte)); // 数据 base64
		//附件类型
		attachmentInfo.setFormat("image/gif");
		attachmentInfoList.add(attachmentInfo);
		AttachmentInfo attachmentInfo1 = new AttachmentInfo();
		attachmentInfo1.setCid("51"); // Cid="50~59,500-599 附件区，多个附件时，cid进行递增
		attachmentInfo1.setName("附件名称1"); // 名称 可以为空
		//附件内容
		byte[] attachmentInfoByte1 = FileUtils.readFileToByteArray(new File(testHtmlFilePath));
		//附件内容的base64
		attachmentInfo1.setData(Base64.encodeBase64String(attachmentInfoByte1)); // 数据 base64
		//附件类型
		attachmentInfo1.setFormat(DocumentType.HTML.name());
		attachmentInfoList.add(attachmentInfo1);
		return attachmentInfoList;
	}
	/**
	 * 设置批注信息
	 * @return
	 * @throws Exception
	 */
	private List<USignInfo> getAnnotationList() throws Exception {
		List<USignInfo> annotationList = new ArrayList<USignInfo>();
		USignInfo uSignInfoAnnotation = new USignInfo();
		uSignInfoAnnotation.setCid("31");// cid 3开头，多个批注时，cid进行递增
		// 批注图片base64
		uSignInfoAnnotation.setImageBty(Base64.decodeBase64(pizhuImage));
		// 批注图片格式("image/gif"、"image/jpeg"、"image/png")
		uSignInfoAnnotation.setImageFMT("image/png");
		ImageSize imageSizeUsign = new ImageSize(); // 批注图片尺寸大小
		imageSizeUsign.setHeight("700"); // 高度
		imageSizeUsign.setWidth("504"); // 宽度
		imageSizeUsign.setUnit("dp"); // 单位类型
		uSignInfoAnnotation.setImageSize(imageSizeUsign);
		//批注展示的位置
		SignRuleInfo  signRuleUsign = new SignRuleInfo();
		////0关键字/1坐标/2规则
		signRuleUsign.setRuleType("1");
		//坐标方式
		XYZRuleInfo xYZRuleInfo = new  XYZRuleInfo();
		xYZRuleInfo.setPageno("1");///批注页 正数为正序 负数为倒序，批注不支持0
		xYZRuleInfo.setBottom("26");//下
		xYZRuleInfo.setLeft("84");//左
		xYZRuleInfo.setRight("253");//右
		xYZRuleInfo.setTop("260");//上
		xYZRuleInfo.setUnit("dp");//设置坐标单位
		signRuleUsign.setXYZRule(xYZRuleInfo);
		uSignInfoAnnotation.setSignRule(signRuleUsign);
		annotationList.add(uSignInfoAnnotation);
		return annotationList;
	}
	/**
	 * 设置公章信息，公章签章位置：关键字
	 * 多公章签名时，需要创建多个CachetInfo实例
	 * @return
	 * @throws IOException
	 * @throws Exception
	 */
	private List<CachetInfo> getCachetInfoList() throws IOException, Exception {
		List<CachetInfo> cachetInfoList = new ArrayList<CachetInfo>();
		//单位公章类
		CachetInfo cachetInfo = new CachetInfo();
		SignRuleInfo signRuleInfo = new SignRuleInfo();
		signRuleInfo.setRuleType("0");//0 关键字  1坐标 2签章规则
		KWInfo kwInfo = new KWInfo();
		kwInfo.setKW("身份");
		kwInfo.setKWOffset("0");//偏移量是朝哪个方向偏移,与XOffset和YOffset是互斥的,默认为0
		kwInfo.setKWPos("3"); // 关键字的方位1:Center,2:lower,3:right,4:lower-right
		kwInfo.setPageno("1"); // 签名页 正数为正序 负数为倒序 0全签
		kwInfo.setXOffset("0"); // X轴偏移量 适配关键字和规则
		kwInfo.setYOffset("30"); // Y轴偏移量 适配关键字和规则
		signRuleInfo.setKWRule(kwInfo);
		cachetInfo.setSignRule(signRuleInfo);
		cachetInfo.setAppName("53C130E7BF352E1F");//签名策略编号
		//设置签章图片
		cachetInfo.setImage(Base64.encodeBase64String(FileUtils.readFileToByteArray(new File(testImageFilePath))));
		cachetInfoList.add(cachetInfo);

		return cachetInfoList;
	}

	//批注图片base64字符串
	public static final String pizhuImage ="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";

	//手写签名图片字符串
	public static final String imgStr="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";


}
